package com.itheima.thread.Demo5;

public class Ticket extends Thread{
    //此处必须加上static修饰,否则在主方法中创建多个对象,那么每个对象使用的都是自己的一份数据
    private static int ticket = 100;

    @Override
    public void run() {
        while (true){
            //锁对象推荐使用这种方法,可以保证唯一性
            synchronized ("1") {//使用同步代码块解决数据安全问题
                if(ticket == 0){
                    break;
                }else{
                    ticket--;
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println(Thread.currentThread().getName()+"正在买票,剩余票数有"+ticket+"张");
                }
            }
        }
    }
}
